﻿using Bot.Domain.Entities;
using Comm100.Framework;
using Comm100.Framework.AutoMapper;
using Comm100.Public;
using Bot.Domain.Bo;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Bot.Domain;

namespace Bot.Application.Dto
{
    [AutoMapTo(typeof(DialogflowUpdateBo))]
    public class DialogflowUpdateDto
    {
        [Required]
        public Guid Id { get; set; }
        [Required]
        public int SiteId { get; set; }
        public Guid? BotId { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_TimeZone)]
        public string TimeZone { get; set; }
        [Required]
        public bool IsEnableLogging { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_MatchMode)]
        public string MatchMode { get; set; }
        [Required]
        public decimal ClassificationThreshold { get; set; }
        [Required]
        public string ProjectAuthJson { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_SupportedLanguageCodes)]
        public string SupportedLanguageCodes { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_DisplayName)]
        public string DisplayName { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_DefaultLanguageCode)]
        public string DefaultLanguageCode { get; set; }
        [Required]
        [MaxLength(DialogflowStringLength.MaxLength_ProjectId)]
        public string ProjectId { get; set; }
        [Required]
        public bool IsTestAccount { get; set; }
    }
}